/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ueb14.htw.tree;

/**
 *
 * @author adier
 */
public interface Tree {
    
   public String getName();
    public TreeImpl getLeftChild();
    public TreeImpl getRightChild();
    public TreeImpl getParent() throws TreeErrorException;
    public TreeImpl getGrantParent() throws TreeErrorException;
    public TreeImpl getUncle() throws TreeErrorException;
    public TreeImpl getMax();
    public TreeImpl getMin();
    public int getSize();
    public Object getReference();
    public boolean isRed();
    public boolean isBlack();
    public void makeRed();
    public void makeBlack();
    public void setReference(Object reference);
    public void setName(String name) throws TreeErrorException;
    public void setLeftChild(TreeImpl leftChild) throws TreeErrorException;
    public TreeImpl getBrother() throws TreeErrorException;
    public boolean isNil();
    public void setRightChild(TreeImpl rightChild) throws TreeErrorException;
    public void setParent(TreeImpl parent) throws TreeErrorException;
    public void setGrantParent(TreeImpl grandParent) throws TreeErrorException;
    public void setUncle(TreeImpl uncle) throws TreeErrorException;
    public boolean isRoot();
    public boolean isRightChild() throws TreeErrorException;
    public boolean isLeftChild() throws TreeErrorException;
    public TreeImpl search(String name) throws TreeErrorException;
    public int compareTo(Object o);
    public boolean equals(Object o);
    public String toString();


}
    
    
    
    

